package com.dfrz.ch06.tackTeacher;

/**
 * 程序功能：球从100米高度落下，每次落地后反跳回原高度的一半
 * 求它在第10次落地时，共经过多少米，反弹多高。
 */
public class CountHeight05 {

    /**
     * 主函数
     *
     * @param args
     */
    public static void main(String args[]) {

        distanceAndHigh(100, 2);
    }

    /**
     * 球从h米落下，每次落地后反跳回原高度的一半,求它在第times次落地时，共经过多少米，反弹多高。
     * 结果在函数中输出
     *
     * @param h     球的初始高度
     * @param times 落地次数
     * @return 无返回类型，结果在函数中输出
     */
    public static void distanceAndHigh(double h, int times) {

        //控制循环，表示小球当前落地次数
        int i = 1;
        //小球运动的路程长度
        double dis = h;
        //反跳高度为原高度的一半
        h=h/2;

        while (i < times) {
            dis = dis+(h * 2);
            h=h/2;
            i++;
        }

        //输出结果
        System.out.println(dis + "\n" + h);
    }
}